package com.entmanage.base.collegeco.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.entmanage.common.annotation.Excel;
import com.entmanage.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

/**
 * 实习周报（每周提交一次）对象 collegeco_intern_weekly_log
 *
 * @author lsq
 * @date 2025-08-06
 */
@ApiModel(value = "CollegecoInternWeeklyLog", description = "实习周报（每周提交一次）对象")
public class CollegecoInternWeeklyLog extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 周报ID，主键 */
    @ApiModelProperty(value = "周报ID，主键")
    private Long logId;

    /** 实习生ID，关联 hrm_intern.intern_id */
    @Excel(name = "实习生ID，关联 hrm_intern.intern_id")
    @ApiModelProperty(value = "实习生ID，关联 hrm_intern.intern_id")
    private Long internId;

    /** 用户ID（冗余，便于查询） */
    @Excel(name = "用户ID", readConverterExp = "冗=余，便于查询")
    @ApiModelProperty(value = "用户ID（冗余，便于查询）")
    private Long userId;

    /** 本周开始日期（周一） */
    @Excel(name = "本周开始日期", readConverterExp = "周=一")
    @ApiModelProperty(value = "本周开始日期（周一）")
    private Date weekStartDate;

    /** 本周结束日期（周日） */
    @Excel(name = "本周结束日期", readConverterExp = "周=日")
    @ApiModelProperty(value = "本周结束日期（周日）")
    private Date weekEndDate;

    /** 提交时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "提交时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "提交时间")
    private Date submitTime;

    /** 工作内容与要求（本周计划任务、项目目标） */
    @Excel(name = "工作内容与要求", readConverterExp = "本=周计划任务、项目目标")
    @ApiModelProperty(value = "工作内容与要求（本周计划任务、项目目标）")
    private String workContent;

    /** 工作情况记录（实际完成、进度、问题与解决） */
    @Excel(name = "工作情况记录", readConverterExp = "实=际完成、进度、问题与解决")
    @ApiModelProperty(value = "工作情况记录（实际完成、进度、问题与解决）")
    private String workRecord;

    /** 个人体会或收获（技能提升、反思、建议） */
    @Excel(name = "个人体会或收获", readConverterExp = "技=能提升、反思、建议")
    @ApiModelProperty(value = "个人体会或收获（技能提升、反思、建议）")
    private String personalGain;

    /** 状态：1-草稿，2-已提交，3-已审核，4-已驳回 */
    @Excel(name = "状态：1-草稿，2-已提交，3-已审核，4-已驳回")
    @ApiModelProperty(value = "状态：1-草稿，2-已提交，3-已审核，4-已驳回")
    private String status;

    /** 审核人 */
    @Excel(name = "审核人")
    @ApiModelProperty(value = "审核人")
    private String mentor;

    /** 审核人ID */
    @Excel(name = "审核人ID")
    @ApiModelProperty(value = "审核人ID")
    private Long mentorId;

    /** 审核时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "审核时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "审核时间")
    private Date reviewTime;

    /** 审核意见 */
    @Excel(name = "审核意见")
    @ApiModelProperty(value = "审核意见")
    private String reviewOpinion;

    /** 附件ID列表，JSON格式，如：["1001","1002"] */
    @Excel(name = "附件ID列表，JSON格式")
    @ApiModelProperty(value = "附件ID列表，JSON格式")
    private String attachments;

    /** 备注信息 */
    @Excel(name = "备注信息")
    @ApiModelProperty(value = "备注信息")
    private String remarks;

    /** 删除逻辑标识 */
    @ApiModelProperty(value = "删除逻辑标识")
    private String delFlag;

    /** 部门ID */
    @Excel(name = "部门ID")
    @ApiModelProperty(value = "部门ID")
    private Long deptId;


    public void setLogId(Long logId)
    {
        this.logId = logId;
    }

    public Long getLogId()
    {
        return logId;
    }
    public void setInternId(Long internId)
    {
        this.internId = internId;
    }

    public Long getInternId()
    {
        return internId;
    }
    public void setUserId(Long userId)
    {
        this.userId = userId;
    }

    public Long getUserId()
    {
        return userId;
    }
    public void setWeekStartDate(Date weekStartDate)
    {
        this.weekStartDate = weekStartDate;
    }

    public Date getWeekStartDate()
    {
        return weekStartDate;
    }
    public void setWeekEndDate(Date weekEndDate)
    {
        this.weekEndDate = weekEndDate;
    }

    public Date getWeekEndDate()
    {
        return weekEndDate;
    }
    public void setSubmitTime(Date submitTime)
    {
        this.submitTime = submitTime;
    }

    public Date getSubmitTime()
    {
        return submitTime;
    }
    public void setWorkContent(String workContent)
    {
        this.workContent = workContent;
    }

    public String getWorkContent()
    {
        return workContent;
    }
    public void setWorkRecord(String workRecord)
    {
        this.workRecord = workRecord;
    }

    public String getWorkRecord()
    {
        return workRecord;
    }
    public void setPersonalGain(String personalGain)
    {
        this.personalGain = personalGain;
    }

    public String getPersonalGain()
    {
        return personalGain;
    }
    public void setStatus(String status)
    {
        this.status = status;
    }

    public String getStatus()
    {
        return status;
    }
    public void setMentor(String mentor)
    {
        this.mentor = mentor;
    }

    public String getMentor()
    {
        return mentor;
    }
    public void setMentorId(Long mentorId)
    {
        this.mentorId = mentorId;
    }

    public Long getMentorId()
    {
        return mentorId;
    }
    public void setReviewTime(Date reviewTime)
    {
        this.reviewTime = reviewTime;
    }

    public Date getReviewTime()
    {
        return reviewTime;
    }
    public void setReviewOpinion(String reviewOpinion)
    {
        this.reviewOpinion = reviewOpinion;
    }

    public String getReviewOpinion()
    {
        return reviewOpinion;
    }
    public void setAttachments(String attachments)
    {
        this.attachments = attachments;
    }

    public String getAttachments()
    {
        return attachments;
    }
    public void setRemarks(String remarks)
    {
        this.remarks = remarks;
    }

    public String getRemarks()
    {
        return remarks;
    }
    public void setDelFlag(String delFlag)
    {
        this.delFlag = delFlag;
    }

    public String getDelFlag()
    {
        return delFlag;
    }

    public void setDeptId(Long deptId)
    {
        this.deptId = deptId;
    }

    public Long getDeptId()
    {
        return deptId;
    }


    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("logId", getLogId())
            .append("internId", getInternId())
            .append("userId", getUserId())
            .append("weekStartDate", getWeekStartDate())
            .append("weekEndDate", getWeekEndDate())
            .append("submitTime", getSubmitTime())
            .append("workContent", getWorkContent())
            .append("workRecord", getWorkRecord())
            .append("personalGain", getPersonalGain())
            .append("status", getStatus())
                .append("mentor", getMentor())
                .append("mentorId", getMentorId())
            .append("reviewTime", getReviewTime())
            .append("reviewOpinion", getReviewOpinion())
            .append("attachments", getAttachments())
            .append("remarks", getRemarks())
            .append("createTime", getCreateTime())
            .append("updateTime", getUpdateTime())
            .append("delFlag", getDelFlag())
            .append("createBy", getCreateBy())
            .append("updateBy", getUpdateBy())
            .append("remark", getRemark())
                .append("deptId", getDeptId())
            .toString();
    }
}
